package com.fcscs.ecms.gwt.client;

import java.util.List;

import com.fcscs.cservice.domain.CookOptionItem;
import com.fcscs.cservice.domain.SpicyDescription;
import com.fcscs.cservice.domain.model.CookOptionItemView;
import com.fcscs.cservice.domain.model.SpicyView;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface ECMSInRoomConfServiceAsync {

	void createCookOptionItem(CookOptionItem coi,
			AsyncCallback<CookOptionItem> callback);

	void createSpicyDescription(SpicyDescription spicy,
			AsyncCallback<SpicyDescription> callback);

	void deleteCookOptionItem(CookOptionItem coi,
			AsyncCallback<Boolean> callback);

	void deleteSpicyDescription(SpicyDescription spicy,
			AsyncCallback<Boolean> callback);

	void getCookOptionItem(long id, AsyncCallback<CookOptionItem> callback);

	void getCookOptionItemList(long orgId, long propId, long versionId,
			AsyncCallback<List<CookOptionItem>> callback);

	void getCookOptionItemList(long orgId, long propId, boolean isCurrent,
			AsyncCallback<List<CookOptionItem>> callback);

	void getCookOptionItemViewList(long orgId, long propId,
			AsyncCallback<List<CookOptionItemView>> callback);

	void getSpicyDescription(long id, AsyncCallback<SpicyDescription> callback);

	void getSpicyDescriptionList(long orgId, long propId, long versionId,
			AsyncCallback<List<SpicyDescription>> callback);

	void getSpicyDescriptionList(long orgId, long propId, boolean isCurrent,
			AsyncCallback<List<SpicyDescription>> callback);

	void isCookOptionItemTaken(long orgId, long propId, String name, Long id,
			long versionId, AsyncCallback<Boolean> callback);

	void isSpicyDescriptionTaken(long orgId, long propId, String name, Long id,
			long versionId, AsyncCallback<Boolean> callback);

	void permDeleteSpicyDescription(SpicyDescription spicy,
			AsyncCallback<Boolean> callback);

	void saveCookOptionItem(CookOptionItem coi,
			AsyncCallback<CookOptionItem> callback);

	void saveCookOptionItemList(List<CookOptionItem> coiList,
			AsyncCallback<List<CookOptionItem>> callback);

	void permDeleteCookOptionItem(CookOptionItem coi,
			AsyncCallback<Boolean> callback);

	void saveSpicyDescription(SpicyDescription spicy,
			AsyncCallback<SpicyDescription> callback);

	void getSpicyViewList(long orgId, long propId,
			AsyncCallback<List<SpicyView>> callback);

	

}
